/**
 * 全局变量：常驻内存，会污染全局
 * 局部变量：不会常驻内存，会被垃圾机制回收，不会污染全局
 * 
 * 想要实现：
 *    1、常驻内存
 *    2、不污染全局
 * 
 * 闭包可以实现。
 * 
 * 闭包：函数嵌套函数，内部函数会调用外部函数的变量或参数，变量或参数不会被系统垃圾机制回收
 * 
 * 闭包的写法：函数嵌套函数，并return里面的函数，这样形成闭包。
 */
main(List<String> args) {
  fun() {
    var a = 123;
    return () {
      a++;
      print(a);
    };
  }

  var b = fun();
  b();
  b();
  b();
}
